package com.chinacoal.microservice.pojo;

import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * @author zhuliang
 * @version V1.0
 * @Description: 运维管理——合同管理
 * @date 2020-11-16 17：53
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = true)
@ApiModel(value = "运维管理——合同管理")
public class CcmsSmartleasingContract implements Serializable {

    @ApiModelProperty(value = "uuid主键")
    @TableId(value = "pk_contract_id")
    private String pkContractId;

    @ApiModelProperty(value = "创建人")
    private Integer createdBy;

    @ApiModelProperty(value = "创建时间")
    private Date creationDate;

    @ApiModelProperty(value = "最后变更人")
    private Integer lastUpdatedBy;

    @ApiModelProperty(value = "最后变更时间")
    private Date lastUpdateDate;

    @ApiModelProperty(value = "删除标记,默认为'false'")
    private Byte deleteSign;

    @ApiModelProperty(value = "出租人外键ID")
    private String fkLessorId;

    @ApiModelProperty(value = "楼宇外键id")
    private String fkBuildingId;

    @ApiModelProperty(value = "房间外键id")
    private String fkRoomId;

    @ApiModelProperty(value = "租户外键id")
    private String fkTenantId;

    @ApiModelProperty(value = "月租金")
    private BigDecimal monthlyRent;

    @ApiModelProperty(value = "押金")
    private BigDecimal deposit;

    @ApiModelProperty(value = "开始时间")
    private Date contractStartTime;

    @ApiModelProperty(value = "结束时间")
    private Date contractEndTime;

    @ApiModelProperty(value = "合同编号")
    private String contractNumber;

    @ApiModelProperty(value = "备案登记号")
    private String recordRegistrationNumber;

    @ApiModelProperty(value = "合同用途,外键ID")
    private String fkContractPurposeId;

    @ApiModelProperty(value = "备注")
    private String remarks;

    @ApiModelProperty(value = "合同原件外键,PDF或者图片")
    private String fkContractOriginalId;

    @ApiModelProperty(value = "实际结束时间")
    private Date contractActualEndTime;

    @ApiModelProperty(value = "原因说明，退租原因")
    private String causeDescription;

    @ApiModelProperty(value = "合同状态（0待生效，1已生效，2已终止,3未审核）")
    private Byte contractState;

    @ApiModelProperty(value = "审核状态（0,未审核，1，审核未通过，2，审核通过）")
    private Byte contractAuditState;

    @ApiModelProperty(value = "实退款")
    private Long actualRefund;

    @ApiModelProperty(value = "退款说明")
    private String refundInstructions;

    @ApiModelProperty(value = "出租方式，外键")
    private String fkRentalModeId;

    @ApiModelProperty(value = "发票方式，0线上开票；1线下开票")
    private String invoiceMethod;



    @ApiModelProperty(value = "审批记录类（只作为查询用）")
    @TableField(exist = false)
    private List<CcmsSmartleasingAuditRecods> auditRecods;

    @ApiModelProperty(value = "租户类型，个人(0) or 企业(1)（只作为查询用）")
    @TableField(exist = false)
    private String tenantType;

    @ApiModelProperty(value = "个人&&企业-姓名 or 公司名称（只作为查询用）")
    @TableField(exist = false)
    private String tenantName;

    @ApiModelProperty(value = "个人&&企业-身份证号 or 营业执照编号（只作为查询用）")
    @TableField(exist = false)
    private String idcardNumber;

    @ApiModelProperty(value = "个人&&企业-联系电话（只作为查询用）")
    @TableField(exist = false)
    private String contactPhone;

    @ApiModelProperty(value = "个人&&企业-电子邮箱（只作为查询用）")
    @TableField(exist = false)
    private String email;

    @ApiModelProperty(value = "楼宇名称（只作为查询用）")
    @TableField(exist = false)
    private String buildingName;

    @ApiModelProperty(value = "房间房号（只作为查询用）")
    @TableField(exist = false)
    private String houseNumber;

    @ApiModelProperty(value = "个人&&企业-身份证or营业执照,多图，外键")
    @TableField(exist = false)
    private String fkUpPhotoId;

    @ApiModelProperty(value = "企业-联系人")
    @TableField(exist = false)
    private String contacts;

    @ApiModelProperty(value = "公司地址")
    @TableField(exist = false)
    private String address;

    @ApiModelProperty(value = "企业法人")
    @TableField(exist = false)
    private String enterpriseLegalPerson;

    @ApiModelProperty(value = "个人&&企业-身份证or营业执照,多图，外键(已拆分的数据，只查询用)")
    @TableField(exist = false)
    private String[] fkUpPhotoIdList;

    @ApiModelProperty(value = "拆分的合同原件地址数组（只作为查询用）")
    @TableField(exist = false)
    private String[] fkContractOriginalIdList;

    @ApiModelProperty(value = "承租人信息（只查询）")
    @TableField(exist = false)
    private String lessor;

    @ApiModelProperty(value = "出租方式（只查询）")
    @TableField(exist = false)
    private String roomMode;

    @ApiModelProperty(value = "省名称（只查询）")
    @TableField(exist = false)
    private String province;

    @ApiModelProperty(value = "市名称（只查询）")
    @TableField(exist = false)
    private String city;

    @ApiModelProperty(value = "区名称（只查询）")
    @TableField(exist = false)
    private String area;

    @ApiModelProperty(value = "街道名称（只查询）")
    @TableField(exist = false)
    private String street;

    @ApiModelProperty(value = "其他地址信息（只查询）")
    @TableField(exist = false)
    private String otherAddresses;

    @ApiModelProperty(value = "合同用途（只查询）")
    @TableField(exist = false)
    private String contractPurpose;

    @ApiModelProperty(value = "旧房间id")
    @TableField(exist = false)
    private String oldRoomId;

    @ApiModelProperty(value = "管理处名称")
    @TableField(exist = false)
    private String administrativeOfficeName;

    @ApiModelProperty(value = "管理处电话")
    @TableField(exist = false)
    private String administrativeOfficePhone;

    @ApiModelProperty(value = "单元编码")
    @TableField(exist = false)
    private String unitCoding;

    @ApiModelProperty(value = "应收帐单实收金额")
    private BigDecimal amountOfAccountsReceivable;

    @ApiModelProperty(value = "预付款余额")
    private BigDecimal prepaymentBalance;

    @ApiModelProperty(value = "应收帐单合计")
    private BigDecimal totalBill;

    private static final long serialVersionUID = 1L;
}
